#include "stdafx.h"
#include <iostream>
#include <string>
#include <time.h>
#define RIGHE 10
#define COLONNE 10
#define NAVI 2
using namespace std;

void menu();
void azzera(int giocatore[][COLONNE]);
void settapos(int giocatore[][COLONNE]);
void settaposrand(int giocatore[][COLONNE]);
void gioca(int giocatore1[][COLONNE], int giocatore2[][COLONNE]);
void giocarand(int giocatore1[][COLONNE], int giocatore2[][COLONNE]);

int main()
{
	srand(time(NULL));
	menu();
	system("pause");
    return 0;
}

void menu()
{
	int gioc1[RIGHE][COLONNE];
	int gioc2[RIGHE][COLONNE];
	int scelta;
	do
	{
		printf("Contro chi vuoi giocare?");
		printf("\n1. Cpu\n2. Giocatore locale\n");
		cin >> scelta;
		switch (scelta)
		{
		case 1:
			azzera(gioc1);
			azzera(gioc2);
			settapos(gioc1);
			settaposrand(gioc2);
			giocarand(gioc1, gioc2);
			break;
		case 2:
			azzera(gioc1);
			azzera(gioc2);
			settapos(gioc1);
			settapos(gioc2);
			gioca(gioc1, gioc2);
			break;
		}
	} while (scelta != 0);
}

void azzera(int giocatore[][COLONNE])
{
	for (int j = 0; j < RIGHE; j++)
		for (int i = 0; j < COLONNE; j++)
			giocatore[j][i] = 0;

}

void settapos(int giocatore[][COLONNE])
{
	system("cls");
	int x;
	int y;
	for (int j = 0; j < NAVI; j++)
	{
		printf("Scegli dove posizionare la nave no. %d:\n\n", j+1);
		printf("Inserisci la riga\n");
		do
			cin >> x;
		while (x > RIGHE);
		printf("Inserisci la colonna\n");
		do
			cin >> y;
		while (y > COLONNE);
		giocatore[x][y] = 1;
	}
	system("pause");
}

void settaposrand(int giocatore[][COLONNE])
{
	system("cls");
	int x;
	int y;
		for (int j = 0; j < NAVI; j++)
		{
			x = rand() % RIGHE;
			y = rand() % COLONNE;
			giocatore[x][y] = 1;
		}
}

void gioca(int giocatore1[][COLONNE], int giocatore2[][COLONNE])
{
	int achitocca = 1;
	int x, y;
	int vita1 = 5;
	int vita2 = 5;
	system("cls");
	do
	{
		printf("\n\n\t\t\t\t\tTocca al giocatore %d\n", achitocca);
		switch (achitocca)
		{
		case 1:
			printf("\n\nInserisci la posizione sospetta\n\n");
			printf("Inserisci la riga\n");
			do
				cin >> x;
			while (x > RIGHE);
			printf("Inserisci la colonna\n");
			do
				cin >> y;
			while (y > COLONNE);
			if (giocatore2[x][y] == 1)
			{
				printf("\nColpito e affondato!\n");
				vita2 = vita2 - 1;
			}
			else
			printf("\nNon trovato\n\n");
			achitocca = 2;
			system("pause");
			break;
		case 2:
			printf("\n\nInserisci la posizione sospetta\n\n");
			printf("Inserisci la riga\n");
			cin >> x;
			printf("Inserisci la colonna\n");
			cin >> y;
			if (giocatore1[x][y] == 1)
			{
				printf("\nColpito e affondato!\n");
				vita1 = vita1 - 1;
			}
			else
			printf("\nNon trovato\n\n");
			achitocca = 1;
			system("pause");
			break;
	}
	} while ((vita1>0)&&(vita2>0));
}

void giocarand(int giocatore1[][COLONNE], int giocatore2[][COLONNE])
{
	int achitocca = 1;
	int x, y;
	int vita1 = 5;
	int vita2 = 5;
	system("cls");
	do
	{
		printf("\n\n\t\t\t\t\tTocca al giocatore %d\n", achitocca);
		switch (achitocca)
		{
		case 1:
			printf("\n\nInserisci la posizione sospetta\n\n");
			printf("Inserisci la riga\n");
			do
			cin >> x;
			while (x > RIGHE);
			printf("Inserisci la colonna\n");
			do
			cin >> y;
			while (y > COLONNE);
			if (giocatore2[x][y] == 1)
			{
				printf("\nColpito e affondato!\n");
				vita2 = vita2 - 1;
			}
			else
				printf("\nNon trovato\n\n");
			achitocca = 2;
			system("pause");
			break;
		case 2:
			x = rand() % RIGHE;
			y = rand() % COLONNE;
			printf("\nIl giocatore 2 sceglie il punto (%d,%d)\n", x, y);
			if (giocatore1[x][y] == 1)
			{
				printf("\nColpito e affondato!\n");
				vita1 = vita1 - 1;
			}
			else
				printf("\nNon trovato\n\n");
			achitocca = 1;
			system("pause");
			break;
		}
	} while ((vita1>0) && (vita2>0));
}